1. Relevant Field
Systems and methods consistent with the present invention generally relate to defining data during software development. More particularly, systems and methods consistent with the invention relate to the automatic creation of data definitions used to execute a particular sub-routine according to software code developed by a user.
2. Background Information
Businesses and other organizations commonly develop computer software that is suitable to conduct business in a manner consistent with each businesses' or organizations' needs. Generally, software development is so expensive and time consuming that in many situations businesses or other organizations cannot devote sufficient resources to generate a software program that will operate in accordance with the entity's needs. It is advantageous to these businesses and other organizations to customize a particular base software program instead of developing a software program from the bottom up.
In order to specialize or customize a base program, a business or other organization must be allowed to alter the base software program in order to implement software that satisfies the entities needs. Frequently, a business or other organization must hire a software developer to specialize or customize the base software program so that it meets the needs of the business or other organization. Software developers write program code, business processes, and business rules to specialize or customize the base software program.
In some cases program code, business processes, or business rules make reference to one or more sub-routines. Such references are termed a “call.” A software program defined by program code, business processes, or business rules typically call various sub-routines in order to execute a pre-defined action. These actions may be methods (in the case of object oriented programming), functions or forms (in functional programming), and web services. Sub-routines typically define an interface with parameters specified in the program code. The sub-routine is responsible for determining whether the parameters are “incoming,” “changing,” or “outgoing.” These parameters may also be referred to as a “value.”
Conventionally, it has been a software developer's responsibility to create data definitions that hold values that will be passed to or taken from the sub-routine. A value retrieved from one sub-routine may be used in the next sub-routine. Values may be available at the time the first sub-routine is called or the value may be initially retrieved from the first called sub-routine that returns the particular value in question.
Software developers are burdened by the complexities of maintaining the data definitions and their associated values. To reduce this burden, software developers may define the data definitions as variables. Variables may be used in a routine when developing program code, business processes, or business rules. For business process management, however, a value container must be defined to hold variables and values of a process during execution. While the general concepts involved in defining variables and business process are similar, different terms are used to distinguish development of program code and business processes. The same concepts apply to business rules, though the terms used to describe business rules may vary.
The complexities involved in maintaining data definitions and their associated values during development of program code, business processes, or business rules reduces software development efficiency. This lack of efficiency causes even the least complicated software programs to be so expensive that many business or other organizations would rather use a software program that lacks specialization or customization and does not fully meet their needs.
In view of the foregoing, it is desirable to increase the efficiency of maintaining data definitions and their associated values during development of program code, business processes, and/or business rules. For example, there is a need for an improved method and system to associate data definitions and/or value containers with the appropriate routines to reduce the complexity of software development.